<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>对象方法扩展</title>
  </head>
  <body>
    <script>
      // 声明一个对象
      const school = {
        name: "xx",
        cities: ["北京", "上海", "深圳"],
        xueke: ["语文", "数学", "英语"],
      };

      // 获取对象所有的键
      console.log(Object.keys(school));
      // 使用for...of 和 Object.keys()遍历对象的键
      for (let key of Object.keys(school)) {
        console.log(key);
      }
      // 获取对象所有的值
      console.log(Object.values(school));
      // 使用for...of 和 Object.values()遍历对象的值
      for (let v of Object.values(school)) {
        console.log(v);
      }
      // 获取对象所有的键值对
      console.log(Object.entries(school));
      // 创建一个map对象
      const m = new Map(Object.entries(school));
      console.log(m);
      console.log(m.get("name"));

      // Object.getOwnPropertyDescriptors 获取对象的描述对象
      console.log(Object.getOwnPropertyDescriptors(school));

      // 创建一个对象
      const obj = Object.create(null, {
        name: {
          // 属性值
          value: "xx",
          // 属性特性
          writable: true,
          configurable: true,
          enumerable: true,
        },
      });
    </script>
  </body>
</html>
